package com.yuelao.yuelao_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelao.yuelao_backend.dto.ShopItemDTO;
import com.yuelao.yuelao_backend.dto.UserItemDTO;
import com.yuelao.yuelao_backend.entity.ShopItem;
import com.yuelao.yuelao_backend.entity.UserItem; // 确保导入 UserItem

import java.util.List;

public interface ShopService extends IService<ShopItem> {

    /**
     * 获取商城商品列表
     * @param category 商品类别，可选
     * @return 商品列表
     */
    List<ShopItemDTO> getShopItems(String category);

    /**
     * 购买商品
     * @param userId 用户ID
     * @param itemId 商品ID
     * @param quantity 购买数量
     * @return 是否成功
     */
    boolean purchaseItem(Long userId, Long itemId, Integer quantity);

    /**
     * 获取用户拥有的道具列表
     * @param userId 用户ID
     * @return 道具列表
     */
    List<UserItemDTO> getMyItems(Long userId);

    /**
     * 使用道具
     * @param userId 用户ID
     * @param userItemId 用户道具ID
     * @return 是否成功
     */
    boolean useItem(Long userId, Long userItemId);

    /**
     * 将 ShopItem 实体转换为 ShopItemDTO
     * @param shopItem ShopItem 实体
     * @return ShopItemDTO
     */
    ShopItemDTO convertToShopItemDTO(ShopItem shopItem);

    /**
     * 将 UserItem 实体转换为 UserItemDTO
     * @param userItem UserItem 实体
     * @return UserItemDTO
     */
    UserItemDTO convertToUserItemDTO(UserItem userItem);
}